home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / cgbsv.z / cgbsv
Text File  |  1996-03-14  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4. CCCCGGGGBBBBSSSSVVVV((((3333FFFF))))                                                            CCCCGGGGBBBBSSSSVVVV((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CGBSV - compute the solution to a complex system of linear equations A *
  10.      X = B, where A is a band matrix of order N with KL subdiagonals and KU
  11.      superdiagonals, and X and B are N-by-NRHS matrices
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE CGBSV( N, KL, KU, NRHS, AB, LDAB, IPIV, B, LDB, INFO )
  15.  
  16.          INTEGER       INFO, KL, KU, LDAB, LDB, N, NRHS
  17.  
  18.          INTEGER       IPIV( * )
  19.  
  20.          COMPLEX       AB( LDAB, * ), B( LDB, * )
  21.  
  22. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  23.      CGBSV computes the solution to a complex system of linear equations A * X
  24.      = B, where A is a band matrix of order N with KL subdiagonals and KU
  25.      superdiagonals, and X and B are N-by-NRHS matrices.
  26.  
  27.      The LU decomposition with partial pivoting and row interchanges is used
  28.      to factor A as A = L * U, where L is a product of permutation and unit
  29.      lower triangular matrices with KL subdiagonals, and U is upper triangular
  30.      with KL+KU superdiagonals.  The factored form of A is then used to solve
  31.      the system of equations A * X = B.
  32.  
  33.  
  34. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  35.      N       (input) INTEGER
  36.              The number of linear equations, i.e., the order of the matrix A.
  37.              N >= 0.
  38.  
  39.      KL      (input) INTEGER
  40.              The number of subdiagonals within the band of A.  KL >= 0.
  41.  
  42.      KU      (input) INTEGER
  43.              The number of superdiagonals within the band of A.  KU >= 0.
  44.  
  45.      NRHS    (input) INTEGER
  46.              The number of right hand sides, i.e., the number of columns of
  47.              the matrix B.  NRHS >= 0.
  48.  
  49.      AB      (input/output) COMPLEX array, dimension (LDAB,N)
  50.              On entry, the matrix A in band storage, in rows KL+1 to
  51.              2*KL+KU+1; rows 1 to KL of the array need not be set.  The j-th
  52.              column of A is stored in the j-th column of the array AB as
  53.              follows:  AB(KL+KU+1+i-j,j) = A(i,j) for max(1,j-
  54.              KU)<=i<=min(N,j+KL) On exit, details of the factorization: U is
  55.              stored as an upper triangular band matrix with KL+KU
  56.              superdiagonals in rows 1 to KL+KU+1, and the multipliers used
  57.              during the factorization are stored in rows KL+KU+2 to 2*KL+KU+1.
  58.              See below for further details.
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCGGGGBBBBSSSSVVVV((((3333FFFF))))                                                            CCCCGGGGBBBBSSSSVVVV((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      LDAB    (input) INTEGER
  75.              The leading dimension of the array AB.  LDAB >= 2*KL+KU+1.
  76.  
  77.      IPIV    (output) INTEGER array, dimension (N)
  78.              The pivot indices that define the permutation matrix P; row i of
  79.              the matrix was interchanged with row IPIV(i).
  80.  
  81.      B       (input/output) COMPLEX array, dimension (LDB,NRHS)
  82.              On entry, the N-by-NRHS right hand side matrix B.  On exit, if
  83.              INFO = 0, the N-by-NRHS solution matrix X.
  84.  
  85.      LDB     (input) INTEGER
  86.              The leading dimension of the array B.  LDB >= max(1,N).
  87.  
  88.      INFO    (output) INTEGER
  89.              = 0:  successful exit
  90.              < 0:  if INFO = -i, the i-th argument had an illegal value
  91.              > 0:  if INFO = i, U(i,i) is exactly zero.  The factorization has
  92.              been completed, but the factor U is exactly singular, and the
  93.              solution has not been computed.
  94.  
  95. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  96.      The band storage scheme is illustrated by the following example, when M =
  97.      N = 6, KL = 2, KU = 1:
  98.  
  99.      On entry:                       On exit:
  100.  
  101.          *    *    *    +    +    +       *    *    *   u14  u25  u36
  102.          *    *    +    +    +    +       *    *   u13  u24  u35  u46
  103.          *   a12  a23  a34  a45  a56      *   u12  u23  u34  u45  u56
  104.         a11  a22  a33  a44  a55  a66     u11  u22  u33  u44  u55  u66
  105.         a21  a32  a43  a54  a65   *      m21  m32  m43  m54  m65   *
  106.         a31  a42  a53  a64   *    *      m31  m42  m53  m64   *    *
  107.  
  108.      Array elements marked * are not used by the routine; elements marked +
  109.      need not be set on entry, but are required by the routine to store
  110.      elements of U because of fill-in resulting from the row interchanges.
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.